package org.budo.cmbc.direct.sdk.entity;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 出金至绑定卡接口请求对象
 *
 * 出金到绑定卡有几种情况： 1、汇路为本行，交易成功转账即为成功。
 * 2、汇路为网银互联，接口code返回DS00000代表成功，code为DS02057表示转账交易发起成功（方便商户捕获错误码发起不确定交易查询）。
 * 如需得知最终交易是否到账，请调用公共交易中的不确定交易查询查询交易最终结果。
 * （建议转账后2s调用查询，1s一次轮询最多5次，直到查出明确结果【成功/失败】，一般3s内能出结果）。
 * 3、大额和小额汇路属异步请求，转出转账发起成功后会返回DS0000，表示转账受理成功，并不是真正转账成功，
 * 需调用不确定交易查询交易确认交易最终状态，一般10s内才能得到最终结果。是否在页面上轮询到账结果由商户自行决定。
 * 4、银联代付汇路属异步请求，转出转账发起成功后会返回DS0000，表示转账受理成功，并不是真正转账成功，需调用不确定交易查询交易确认交易最终状态，
 * 一般10s内才能得到最终结果。是否在页面上轮询到账结果由商户自行决定。 关于各个汇路的工作时间，请参照出金汇路查询接口。
 *
 * @author lmw
 */
@Getter
@Setter
@Accessors(chain = true)
@ToString(callSuper = true)
public class MELEBankRouterOutTransferRequest extends AbstractCmbcDirectRequest {
    private static final long serialVersionUID = -235666438032581198L;

    /**
     * 金额, BigDecimal(15,2)
     */
    private String amount;

    /**
     * 电子账户协议编号
     */
    private String eProtocolAcNo;

    /**
     * 电子账户交易密码密文(默认6位数字)
     */
    private String pwdResult;

    /**
     * 密码随机数流水号
     */
    private String randJnlNo;

    /**
     * 随机数
     */
    private String random;

    /**
     * 汇款方式, 0=网银互联,1=小额实时支付,2=大额实时支付，3=行内，6=银联代付；
     */
    private String payPath;

    /**
     * 转账用途
     */
    private String remark = "直销银行转账";

    /**
     * 付款方 E-电子账户：账户余额出金。 R-如意宝：如意宝份额出金。 O-电子账户+如意宝（默认选项）：当账户余额不足时，如意宝份额补足金额出金。
     */
    private String payMent = "E";

    // 一下信息可以通过出金回路接口查询返回获取
    /**
     * 清算行行号
     *
     * 如果客户通过大额、小额通道有成功的转账记录，则会返回当时的清算行号和清算行号名称，
     * 以及对应的省、市、总行代码及名称以显示给客户，并可供客户修改，减少客户选择录入时间
     */
    private String payeeClearBankId;

    /**
     * 清算行名称
     */
    private String payeeClearBankName;

    /**
     * 省编码
     */
    private String provinceCode;

    /**
     * 市编码
     */
    private String cityCode;

    /**
     * 银行编码
     */
    private String bankCode;
}